using System;

namespace Sagile.Nepma
{
    /// <summary>
    /// Represents a process that can pause itself and require a call to Resume() to resume its processing
    /// </summary>
    public interface IInterruptableProcess
    {
        /// <summary>
        /// Occurs when the instance determines it needs to pause.
        /// </summary>
        event EventHandler<PausedEventArgs> Paused;

        /// <summary>
        /// Resumes the process.
        /// </summary>
        void Resume();
    }
}
